点击关注公众号,一周多次包邮送书
文 | 罗奇奇
出品 | OSC开源社区(ID:oschina2013)
1月 25日, Linus Torvalds 在 Linux 的 GitHub 仓库中提交了一个恶作剧 README 页面:https://github.com/torvalds/linux/tree/8bcab0346d4fcf21b97046eb44db8cf37ddd6da0,其备注名为《delete linux because it sucks》—— 我删除了 Linux ,因为它就是个垃圾。
大家好,我是 linus torvalds,红极一时的 linux 的作者。你可以查看 repo 的 url 和文件顶部的名字,它们可以证明是我本人在提交。我删除了 linux,因为我讨厌它,我认为它很烂。你应该去用这个很棒的操作系统,它叫做 windows xp,我刚刚发现它真的很棒。
为什么说这是一场恶作剧呢?因为 Linux 的源代码并没有被删除,而且有细心的网友发现:该 README 最底部还有一个链接:这个链接指向 Hacker News 黑客论坛的一个帖子,帖子详细介绍了 GitHub 现存的“虚假提交”漏洞:可以在 https://github.com/my/project 的 URL下发布任意提交。比如用 https://github.com/my/project/blob/<faked_commit>/README.md 这种 URL ,就可以发布虚假的 README 页面,这种虚假提交不会出现在项目的提交记录里面,也不属于任何一个分支,只能通过访问特定的 URL 看到。而 Linus 这个恶作剧 README 文件正是利用了这个虚假提交漏洞,看一下这个 README 的 URL :如果是正常的提交,URL 应该带有 commit 字眼,比如:除了 URL 不对外,该 README 文件也未出现在提交记录中:由此可见,Linus 只是开了个玩笑,并非真的删库跑路。对此漏洞感兴趣的可以去看看 Hacker News 的原帖,这个虚假提交漏洞结合 GitHub 另一个“通过 git 电子邮件地址冒充用户”漏洞:https://bounty.github.com/ineligible.html#impersonating_a_user_through_git_email_address,能创造出以假乱真的钓鱼页面。https://github.com/slimsag/linux/tree/5895e21f3c744ed9829e3afe9691e3eb1b1932ae#linux-kernel 这个仓库,看起来似乎 Linus 本人参与了这个仓库的建设:然而这只是通过替换电子邮件地址漏洞,把 slimsag 换成了 torvalds 而已。左边是通过漏洞替换邮件地址的 torvalds ,右边是正常的,仔细观察对比可以发现,障眼法换出来的 torvalds 是不显示活动记录的。这些 GitHub 漏洞都是 2020 年公开的,然而漏洞作者称“GitHub 完全不把这些问题当作漏洞”,不知道 GitHub 是无法处理,或是认为没必要处理,反正直到现在它们仍能被利用。👇更多内容请点击👇